#include "key.h"


void KEY_Init()
{
  __HAL_RCC_GPIOB_CLK_ENABLE();
	__HAL_RCC_GPIOA_CLK_ENABLE();
	GPIO_InitTypeDef GPIO_InitStruct = {0};
	
	  /*Configure GPIO pin : PA0 */
  GPIO_InitStruct.Pin = KEY4_PIN;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(KEY4_GPIOx, &GPIO_InitStruct);

  /*Configure GPIO pins : PB0 PB1 PB2 */
  GPIO_InitStruct.Pin = KEY1_PIN|KEY2_PIN|KEY3_PIN;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(KEY1_3_GPIOx, &GPIO_InitStruct);
}

int KEY_Scan()
{
	int key_value = 0;
	//B4
	if(KEY4 == GPIO_PIN_RESET){
		HAL_Delay(50);
		key_value = 4;
	}
	
	//B1
	if(KEY1 == GPIO_PIN_RESET){
		HAL_Delay(50);
		key_value = 1;
	}	
	
	//B2
	if(KEY2 == GPIO_PIN_RESET){
		HAL_Delay(50);
		key_value = 2;
	}
	
	//B3
	if(KEY3 == GPIO_PIN_RESET){
		HAL_Delay(50);
		key_value = 3;
	}
	return key_value;
}
